home *** CD-ROM | disk | FTP | other *** search
/ Aminet 6 / Aminet 6 - June 1995.iso / Aminet / dev / e / capus2.lha / capus2 / WhatView / Sources / WVCX.e < prev    next >
Encoding:
Text File  |  1994-10-15  |  2.3 KB  |  90 lines

  1. /*********************
  2.  * Def Commodities
  3.  *********************/
  4. CONST EVT_HOTKEY_WV=1
  5. CONST EVT_HOTKEY_PREFS=2
  6. DEF my_newbroker:PTR TO newbroker
  7. DEF broker_mp:PTR TO mp
  8. DEF broker,filter,sender,translate
  9. DEF cxsigflag
  10. DEF hotkey[80]:STRING
  11. DEF hotkeyprefs[80]:STRING
  12. DEF msg=NIL
  13. DEF cxpri=0
  14. /*"cxFilter(d:LONG)"*/
  15. PROC cxFilter(d:LONG) 
  16.     DEF r=NIL
  17.     r:=CreateCxObj(CX_FILTER,d,NIL)
  18.     RETURN r
  19. ENDPROC
  20. /**/
  21. /*"cxSender(port:LONG,id:LONG)"*/
  22. PROC cxSender(port:LONG,id:LONG) 
  23.     DEF r=NIL
  24.     r:=CreateCxObj(CX_SEND,port,id)
  25.     RETURN r
  26. ENDPROC
  27. /**/
  28. /*"cxTranslate(ie:LONG)"*/
  29. PROC cxTranslate(ie:LONG) 
  30.     DEF r=NIL
  31.     r:=CreateCxObj(CX_TRANSLATE,ie,NIL)
  32.     RETURN r
  33. ENDPROC
  34. /**/
  35. /*"p_InitCx()"*/
  36. PROC p_InitCx() HANDLE 
  37.     DEF errorcx=NIL
  38.     DEF txt[80]:STRING
  39.     StringF(txt,'MultiViewers (\s/\s)',hotkey,hotkeyprefs)
  40.     /*=== Initialisation de la commodité ===*/
  41.     my_newbroker:=[NB_VERSION,0,
  42.                    'WhatView',
  43.                    'WhatView v0.17 © 1994 NasGûl',
  44.                    txt,
  45.                    NBU_UNIQUE,
  46.                    COF_SHOW_HIDE,
  47.                    0,0,NIL,0]:newbroker
  48.     IF (broker_mp:=CreateMsgPort())=NIL THEN Raise(ER_PORT)
  49.     my_newbroker.port:=broker_mp
  50.     cxsigflag:=Shl(1,broker_mp.sigbit)
  51.     my_newbroker.pri:=cxpri
  52.     IF (broker:=CxBroker(my_newbroker,NIL))=NIL THEN Raise(ER_CX)
  53.     /* HotKey WhatView */
  54.     filter:=cxFilter(hotkey)
  55.     IF (errorcx:=CxObjError(filter))<>0 THEN Raise(ER_CX)
  56.     AttachCxObj(broker,filter)
  57.     sender:=cxSender(broker_mp,EVT_HOTKEY_WV)
  58.     AttachCxObj(filter,sender)
  59.     translate:=cxTranslate(NIL)
  60.     AttachCxObj(filter,translate)
  61.     IF (errorcx:=CxObjError(filter))=0
  62.         ActivateCxObj(broker,1)
  63.     ELSE
  64.         Raise(ER_CX)
  65.     ENDIF
  66.     /* HotKeyPrefs */
  67.     filter:=cxFilter(hotkeyprefs)
  68.     IF (errorcx:=CxObjError(filter))<>0 THEN Raise(ER_CX)
  69.     AttachCxObj(broker,filter)
  70.     sender:=cxSender(broker_mp,EVT_HOTKEY_PREFS)
  71.     AttachCxObj(filter,sender)
  72.     translate:=cxTranslate(NIL)
  73.     AttachCxObj(filter,translate)
  74.     IF (errorcx:=CxObjError(filter))=0
  75.         ActivateCxObj(broker,1)
  76.     ELSE
  77.         Raise(ER_CX)
  78.     ENDIF
  79.     Raise(ER_NONE)
  80. EXCEPT
  81.     RETURN exception
  82. ENDPROC
  83. /**/
  84. /*"p_RemCx()"*/
  85. PROC p_RemCx() 
  86.     IF broker THEN DeleteCxObjAll(broker)
  87.     IF broker_mp THEN DeleteMsgPort(broker_mp)
  88. ENDPROC
  89. /**/
  90.